﻿using System;
using System.Collections.Generic;
using XLua;

namespace StarForce.Editor
{
    public static class GFLuaGenConfig
    {
        [LuaCallCSharp] public static List<Type> LuaCallCSharp = new List<Type>()
        {
            typeof(GameEntry),
            typeof(UIExtension),
            typeof(SoundExtension),
            typeof(UnityGameFramework.Runtime.Log),
            typeof(UnityGameFramework.Runtime.GameEntry),
            
            typeof(UnityGameFramework.Runtime.BaseComponent),
            typeof(UnityGameFramework.Runtime.ConfigComponent),
            typeof(UnityGameFramework.Runtime.DataNodeComponent),
            typeof(UnityGameFramework.Runtime.DataTableComponent),
            typeof(UnityGameFramework.Runtime.DebuggerComponent),
            typeof(UnityGameFramework.Runtime.DownloadComponent),
            typeof(UnityGameFramework.Runtime.EntityComponent),
            typeof(UnityGameFramework.Runtime.FsmComponent),
            typeof(UnityGameFramework.Runtime.LocalizationComponent),
            typeof(UnityGameFramework.Runtime.NetworkComponent),
            typeof(UnityGameFramework.Runtime.ObjectPoolComponent),
            typeof(UnityGameFramework.Runtime.ProcedureComponent),
            typeof(UnityGameFramework.Runtime.ResourceComponent),
            typeof(UnityGameFramework.Runtime.SceneComponent),
            typeof(UnityGameFramework.Runtime.SettingComponent),
            typeof(UnityGameFramework.Runtime.SoundComponent),
            typeof(UnityGameFramework.Runtime.UIComponent),
            typeof(UnityGameFramework.Runtime.WebRequestComponent),
            // http请求相关
            typeof(BestHTTP.HTTPRequest),
            typeof(BestHTTP.HTTPResponse),
            typeof(BestHTTP.HTTPManager),
            typeof(BestHTTP.HTTPMethods),
            typeof(BestHTTP.HTTPProxy),
            typeof(BestHTTP.HTTPRequestStates),
            typeof(BestHTTP.HTTPRange),
            typeof(BestHTTP.OnRequestFinishedDelegate),
            typeof(BestHTTP.OnBeforeRedirectionDelegate),
            typeof(BestHTTP.OnDownloadProgressDelegate),
            typeof(BestHTTP.OnHeaderEnumerationDelegate),
            typeof(BestHTTP.OnUploadProgressDelegate),
            typeof(Uri),
            // 网络相关
            typeof(Action<string>),
        };
    }
}